1. Field of the Invention
The invention relates generally toe to automated test systems and more specifically to methods and structures for saving and restoring state information during processing of automated test procedures to permit restart of an automated test procedure in accordance with the same state information.
2. Discussion of Related Art
In the design and manufacturer of electronic and computing systems (as well as other products and systems) it is generally known to provide automated test systems to automatically verify proper operation of the product or process (i.e., the xe2x80x9csystem under testxe2x80x9d). Such an automated test system responds to sequences of directives and commands supplied by a test operator to generate and apply desired stimuli to the system under test and to verify proper operation of the system under test in response to application of the generated stimuli. The desired stimuli may be manually generated through human interaction and intervention or may be automatically generated by programmable interaction between the automated test system and the system under test.
It is frequently the case that an automated test system comprises computer programs operable on the same system environment in which the system under test operates. In such a test environment, it is a particular problem that the system under test may be reset or restarted in the performance of a particular desired lest sequence or for other reasons outside control of the automated test system. When the system on which the automated test system is operable is so restarted or reset, the automated test system as presently practiced in the art will be reset such that the entire sequence of test procedures maybe restarted from the beginning. Where a sequence of test procedures may be lengthy, restarting the test procedures from the beginning may be an undesirable aspect of such a test environment.
In a particular example of such a test environment, an automated test application program may be operable on a host computer system along with management software portions of a storage control and management subsystem operable on the same system environment. Testing of such a storage management subsystem may require periodic reset and restart of the storage management control features operable on the host environment. Reset and restart of such a system under test would also cause a reset and restart of the automated test application portion co-resident and co-operable on the same host system.
It is evident from the above discussion that a need exists for an improved automated test system design that permits reset and restart of an automated test procedure without necessarily starting the test sequence from the beginning.
The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing methods and associated structure for storing the state of an automated test system to enable resumption of automated test procedures in accordance with the saved state information. More specifically, an automated test system in accordance with the present invention periodically stores state information regarding completion and success or failure of individual test cases as the test process sequences through multiple such test cases. In one exemplary preferred embodiment, such state information is stored in a non-volatile storage medium such that the information is not lost if the host environment for the automated test application is reset or restarted.
Still more specifically in one exemplary preferred embodiment, an automated test procedure may be defined in terms of one or more scripts of interpretive commands processed by the automated test system application. Each script may comprise a number of test cases each of which, in turn, may comprise sequential steps performing particular individual test cases as part of a sequence of tests defined by a particular script. Dependencies among the various test cases within scripts and among the various scripts may be maintained in the non-volatile memory element as well as periodically updated state information indicating the progress of the automated test system application through the various test cases of each script and through the various scripts comprising the entire automated test procedure.
A first feature of the invention therefore provides an automated test system including: an automated test system application operable on a host system; and a non-volatile memory component coupled to the host system such that the automated test system application is operable to store state information on the non-volatile memory component indicative of progress in a present test procedure such that the automated test system may be resumed in accordance with the state information.
Another aspect of the invention further provides for a task scheduler component operable on the host system to retrieve the state information from the non-volatile memory component in response to restart of the host system.
Another aspect of the invention further provides for a system under test application operable on the host system and communicatively coupled with the automated test system application such that the automated test system application is operable to verify operation of the system under test application.
Another aspect of the invention further provides for a system under test communicatively coupled with the system under test application.
Another aspect of the invention further provides that the system under test is a storage subsystem and that the system under test application is a storage management application program.
Another aspect of the invention further provides that the state information includes: a test completion flag indicating completion of an associated test case.
Another aspect of the invention further provides that the state information includes: a test success flag indicating passage of an associated test case.
A second feature of the invention provides for a method for automated testing of a system under test comprising the steps of: initiating an automated test procedure to test the system under test; and periodically recording in a non-volatile memory device state information indicative of progress of the automated test procedure.
Another aspect of the invention further provides for the step of resuming the automated test procedure in accordance with the state information such that the resumption of the automated test procedure is in response to reset of a host system on which the method is operating.
Another aspect of the invention further provides that the automated test procedure is comprised of a plurality of test cases and such that the state information includes information indicating completion state of the plurality of test cases and such that the step of resuming includes the step of: continuing the automated test procedure with test cases of the plurality of test cases for which the completion state is not recorded in the state information.
Another aspect of the invention further provides the step of: providing test case dependency information indicating dependencies among the plurality of test cases such that a test case may only be performed when all other test cases on which it depends are successfully completed, such that the step of continuing includes the step of: continuing the automated test procedure with test cases for which all dependency information is satisfied.
Another aspect of the invention further provides that the automated test procedure is comprised of a plurality of test cases and such that the step of periodically recording comprises the step of: recording completion state at the completion of each of the plurality of test cases.
Another aspect of the invention further provides that the automated test procedure is comprised of a plurality of test cases and such that the step of periodically recording comprises the step of: recording successful completion state at the successful completion of each of the plurality of test cases.
Anther aspect of the invention further provides that the automated test procedure is comprised of a plurality of test cases and such that the step of periodically recording comprises the steps of: recording successful completion state at the successful completion of each of the plurality of test cases; and recording unsuccessful completion state at the unsuccessful completion of any of the plurality of test cases.